1. Field of the Invention
The present invention relates to a method of improving application caching in a digital device. More particularly, the present invention relates to a method of pre-loading in memory or pre-starting applications in anticipation of near future usage according to current circumstances.
2. Description of the Related Art
A mobile terminal, such as a smartphone or a tablet computer, is typically limited in the amount of memory that may be installed due to size, weight, and price concerns. The mobile terminal may therefore attempt to execute applications which use all available memory. In operating systems such as LINUX or Android (a mobile phone operating system based on the LINUX kernel), conventional memory management techniques include selecting applications to kill based on static process information. Thus, whereas a desktop computer can be provided with a large amount of memory to increase its capabilities, it is not correspondingly possible to keep a significant number of applications running concurrently in a mobile device due to the available memory constraints.
A mobile device will typically have some applications that can be started or stopped as required, and other applications which are effectively always running. For example, a smart phone will always be running a telephone application, to maintain contact with the telephone system so that the user can receive telephone calls. If the telephone application were only running when the user desired to use it, the user would effectively be limited to only making outgoing telephone calls.
In contrast, some applications only need to run when in actual use. A user playing a game or selecting movies from a streaming service will not lack any ability to use these applications fully even if they are only running when the user is using them.
Launch speed of applications is a key factor in the perceived performance of a mobile device. Often, several seconds of delay is noticed while launching an application due to the large number of resources that must be fetched. As these devices become more powerful and additional memory is available, it is advantageous to keep many “hot” applications ready-to-run in the background. Typically, the list of applications kept is managed by a system algorithm which orders applications so as to kill applications determined to be the least likely to be needed, when there is little or no free memory remaining.
There are methods in development to pre-launch applications according to a location or a frequency of application use. However, there has not yet been provided any means for a user to have various applications loaded into cache according to circumstances such as proximity to various entities, user environment such as “work”, “family”, or “friends”, scheduled events, etc. Further, there has been no means provided to pre-load particular data into cache according to such circumstances.
Therefore, a need exists for a system and method for adaptively pre-loading into cache applications and data in accordance with a user's needs.
The above information is presented as background information only to help understand the present invention. Applicants have made no determination and make no assertion as to whether any of the above might be applicable as Prior Art with regard to the present application.